// 主布局控制和路由管理

// 使用全局函数，不再使用ES模块导入

// DOM元素获取
const menuItems = document.querySelectorAll('.menu-item');
const panels = document.querySelectorAll('.panel');
const toggleSidebarBtn = document.getElementById('toggleSidebarBtn');
const sidebar = document.querySelector('.sidebar');
const mainContent = document.querySelector('.main-content');
const logoutBtn = document.getElementById('logoutBtn');
const currentUsername = document.getElementById('currentUsername');

// CRM 系统架构
const crmModules = {
    dashboard: "数据概览仪表盘",
    customers: "客户管理（增删改查+筛选）",
    contacts: "联系人管理",
    activities: "跟进活动记录",
    sales: "销售漏斗可视化",
    reports: "统计分析报表"
};

// 初始化函数
function init() {
    // 检查用户登录状态
    checkLoginStatus();
    
    // 初始化侧边栏切换
    initSidebarToggle();
    
    // 初始化路由管理
    initRouting();
    
    // 初始化用户信息
    initUserInfo();
    
    // 初始化退出登录
    initLogout();
    
    // 初始化键盘快捷键
    initKeyboardShortcuts();
}

// 检查登录状态
function checkLoginStatus() {
    const isLoggedIn = LocalStorageManager.getItem('crmLoggedIn');
    
    if (!isLoggedIn) {
        // 如果未登录，重定向到登录页
        window.location.href = 'index.html';
    }
}

// 初始化侧边栏切换
function initSidebarToggle() {
    toggleSidebarBtn.addEventListener('click', () => {
        sidebar.classList.toggle('collapsed');
        mainContent.classList.toggle('expanded');
        
        // 保存侧边栏状态到本地存储
        const collapsed = sidebar.classList.contains('collapsed');
        LocalStorageManager.setItem('sidebarCollapsed', collapsed);
    });
    
    // 恢复侧边栏状态
    const savedState = LocalStorageManager.getItem('sidebarCollapsed');
    if (savedState !== null) {
        if (savedState) {
            sidebar.classList.add('collapsed');
            mainContent.classList.add('expanded');
        } else {
            sidebar.classList.remove('collapsed');
            mainContent.classList.remove('expanded');
        }
    }
}

// 初始化路由管理
function initRouting() {
    // 为每个菜单项添加点击事件
    menuItems.forEach(item => {
        item.addEventListener('click', () => {
            const target = item.getAttribute('data-target');
            navigateTo(target);
            
            // 保存当前路由到本地存储
            LocalStorageManager.setItem('currentRoute', target);
        });
    });
    
    // 检查是否有保存的路由，如果有则导航到该路由
    const savedRoute = LocalStorageManager.getItem('currentRoute');
    if (savedRoute && crmModules.hasOwnProperty(savedRoute)) {
        navigateTo(savedRoute);
    } else {
        // 默认导航到仪表盘
        navigateTo('dashboard');
    }
}

// 导航到指定路由
function navigateTo(route) {
    // 检查路由是否有效
    if (!crmModules.hasOwnProperty(route)) {
        console.error('无效的路由:', route);
        return;
    }
    
    // 更新活动菜单项
    menuItems.forEach(item => {
        item.classList.remove('active');
        if (item.getAttribute('data-target') === route) {
            item.classList.add('active');
        }
    });
    
    // 更新显示的面板
    panels.forEach(panel => {
        panel.classList.remove('active');
        if (panel.id === route) {
            panel.classList.add('active');
        }
    });
    
    // 更新页面标题
    const pageTitle = document.querySelector('.page-title h1');
    if (pageTitle) {
        pageTitle.textContent = crmModules[route];
    }
    
    // 触发路由变更事件
    const event = new CustomEvent('routeChanged', { detail: { route } });
    window.dispatchEvent(event);
}

// 初始化用户信息
function initUserInfo() {
    const username = LocalStorageManager.getItem('crmUsername');
    if (username && currentUsername) {
        currentUsername.textContent = username;
    }
}

// 初始化退出登录
function initLogout() {
    logoutBtn.addEventListener('click', () => {
        if (confirm('确定要退出登录吗？')) {
            // 清除登录状态
            LocalStorageManager.removeItem('crmLoggedIn');
            LocalStorageManager.removeItem('crmUsername');
            
            // 重定向到登录页
            window.location.href = 'index.html';
        }
    });
}

// 初始化键盘快捷键
function initKeyboardShortcuts() {
    document.addEventListener('keydown', (e) => {
        // Ctrl/Cmd + 数字键 导航到对应模块
        if ((e.ctrlKey || e.metaKey) && e.key >= '1' && e.key <= '6') {
            e.preventDefault();
            const routes = Object.keys(crmModules);
            const index = parseInt(e.key) - 1;
            
            if (index >= 0 && index < routes.length) {
                navigateTo(routes[index]);
            }
        }
        
        // Ctrl/Cmd + B 切换侧边栏
        if ((e.ctrlKey || e.metaKey) && e.key === 'b') {
            e.preventDefault();
            toggleSidebarBtn.click();
        }
        
        // Escape 键关闭模态框（如果有显示的模态框）
        if (e.key === 'Escape') {
            const activeModal = document.querySelector('.modal.active');
            if (activeModal) {
                const closeBtn = activeModal.querySelector('.close-modal-btn');
                if (closeBtn) closeBtn.click();
            }
        }
    });
}

// 暴露一些全局方法供其他模块使用
window.crm = {
    navigateTo,
    showNotification
};

// 页面加载完成后初始化
window.addEventListener('DOMContentLoaded', init);